import Vue from 'vue'

// 便捷toast提示
Vue.prototype.$toast = (title, icon) => { uni.showToast({ title, icon: icon || 'none' }) }

// 便捷路由跳转(保留当前页面)
Vue.prototype.$navigateTo = url => { uni.navigateTo({ url }) }

// 便捷路由跳转(关闭当前页面)
Vue.prototype.$redirectTo = url => { uni.redirectTo({ url }) }

// 跳转到 tabBar 页面，并关闭其他所有非 tabBar 页面 
Vue.prototype.$switchTab = url => { uni.switchTab({ url }) }

// 关闭当前页面，返回上一页面或多级页面 
Vue.prototype.$navigateBack = delta => { uni.navigateBack({ delta: delta || 1 }) }

// 获取定位信息
export function getLocation() {
	return new Promise((resolve, reject) => {
		uni.getLocation({
			// type: 'gcj02',
			// type: 'wgs84', // 默认值
			geocode: true,
			// accuracy: 'best', // 默认为high:精度100m best:精度20m
			isHighAccuracy: true,
			success: (res) => {
				resolve(res)
			},
			fail: (err) => {
				reject(err)
			},
			complete: (res) => {}
		})
	})
}

export function checkUpdate() {
	const updateManager = uni.getUpdateManager()
	updateManager.onCheckForUpdate((res) => {
		// 请求完新版本信息的回调
		console.log(`接单端新版本 = ${res.hasUpdate}`)
		if (res.hasUpdate) {
			updateManager.onUpdateReady((res) => {
				uni.showModal({
					title: '更新提示',
					content: '检测到新版本，需要重启才能更新，是否立即重启？',
					success: (res) => {
						if (res.confirm) {
							// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
							updateManager.applyUpdate()
						}
					}
				})
			})

			updateManager.onUpdateFailed((res) => {
				// 新的版本下载失败
			})
		}
	})
}

export function openLocation(latitude, longitude) {
	uni.openLocation({
		latitude,
		longitude,
		success: (res) => {
			console.log('打开导航成功...');
		},
		fail: (res) => {
			uni.showToast({ icon: 'none', title: JSON.stringify(res) })
		}
	});
}